namespace EFS.RC.CC.SAL.Writers
{
	public interface IWriter : EFS.Common.ISelfDescriptor
	{
		/// <summary>
		/// Write
		/// </summary>
		/// <param name="message"></param>
		void Write(EFS.RC.CC.SAL.Loggers.Messages.Message message);

		/// <summary>
		/// Register terminate 
		/// </summary>
		/// <param name="message"></param>
		void RegisterTerminate<T>(EFS.Common.Async.AsyncDelegate<T>.Delegate terminated) where T : EFS.RC.CC.SAL.Writers.IWriter;
	}
}